//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(new String('he' + 'llo') < new Object());
write(new String('he' + 'llo') < new Object());
write(new String('he' + 'llo') < [1, 2, 3]);
write(new String('he' + 'llo') < [1 ,2 , 3]);
write(new String('he' + 'llo') < new Array(3));
write(new String('he' + 'llo') < Array(3));
write(new String('he' + 'llo') < new Array(1 ,2 ,3));
write(new String('he' + 'llo') < Array(1));
write(new String('he' + 'llo') < foo);
write(new Object() < undefined);
write(new Object() < null);
write(new Object() < true);
write(new Object() < false);
write(new Object() < Boolean(true));
write(new Object() < Boolean(false));
write(new Object() < new Boolean(true));
write(new Object() < new Boolean(false));
write(new Object() < NaN);
write(new Object() < +0);
write(new Object() < -0);
write(new Object() < 0);
write(new Object() < 0.0);
write(new Object() < -0.0);
write(new Object() < +0.0);
write(new Object() < 1);
write(new Object() < 10);
write(new Object() < 10.0);
write(new Object() < 10.1);
write(new Object() < -1);
write(new Object() < -10);
write(new Object() < -10.0);
write(new Object() < -10.1);
write(new Object() < Number.MAX_VALUE);
write(new Object() < Number.MIN_VALUE);
write(new Object() < Number.NaN);
write(new Object() < Number.POSITIVE_INFINITY);
write(new Object() < Number.NEGATIVE_INFINITY);
write(new Object() < new Number(NaN));
write(new Object() < new Number(+0));
write(new Object() < new Number(-0));
write(new Object() < new Number(0));
write(new Object() < new Number(0.0));
write(new Object() < new Number(-0.0));
write(new Object() < new Number(+0.0));
write(new Object() < new Number(1));
write(new Object() < new Number(10));
write(new Object() < new Number(10.0));
write(new Object() < new Number(10.1));
write(new Object() < new Number(-1));
write(new Object() < new Number(-10));
write(new Object() < new Number(-10.0));
write(new Object() < new Number(-10.1));
write(new Object() < new Number(Number.MAX_VALUE));
write(new Object() < new Number(Number.MIN_VALUE));
write(new Object() < new Number(Number.NaN));
write(new Object() < new Number(Number.POSITIVE_INFINITY));
write(new Object() < new Number(Number.NEGATIVE_INFINITY));
write(new Object() < '');
write(new Object() < 0xa);
write(new Object() < 04);
write(new Object() < 'hello');
write(new Object() < 'hel' + 'lo');
write(new Object() < String(''));
write(new Object() < String('hello'));
write(new Object() < String('h' + 'ello'));
write(new Object() < new String(''));
write(new Object() < new String('hello'));
write(new Object() < new String('he' + 'llo'));
write(new Object() < new Object());
write(new Object() < new Object());
write(new Object() < [1, 2, 3]);
write(new Object() < [1 ,2 , 3]);
write(new Object() < new Array(3));
write(new Object() < Array(3));
write(new Object() < new Array(1 ,2 ,3));
write(new Object() < Array(1));
write(new Object() < foo);
write(new Object() < undefined);
write(new Object() < null);
write(new Object() < true);
write(new Object() < false);
write(new Object() < Boolean(true));
write(new Object() < Boolean(false));
write(new Object() < new Boolean(true));
write(new Object() < new Boolean(false));
write(new Object() < NaN);
write(new Object() < +0);
write(new Object() < -0);
write(new Object() < 0);
write(new Object() < 0.0);
write(new Object() < -0.0);
write(new Object() < +0.0);
write(new Object() < 1);
write(new Object() < 10);
write(new Object() < 10.0);
write(new Object() < 10.1);
write(new Object() < -1);
write(new Object() < -10);
write(new Object() < -10.0);
write(new Object() < -10.1);
write(new Object() < Number.MAX_VALUE);
write(new Object() < Number.MIN_VALUE);
write(new Object() < Number.NaN);
write(new Object() < Number.POSITIVE_INFINITY);
write(new Object() < Number.NEGATIVE_INFINITY);
write(new Object() < new Number(NaN));
write(new Object() < new Number(+0));
write(new Object() < new Number(-0));
write(new Object() < new Number(0));
write(new Object() < new Number(0.0));
write(new Object() < new Number(-0.0));
write(new Object() < new Number(+0.0));
write(new Object() < new Number(1));
write(new Object() < new Number(10));
write(new Object() < new Number(10.0));
write(new Object() < new Number(10.1));
write(new Object() < new Number(-1));
write(new Object() < new Number(-10));
write(new Object() < new Number(-10.0));
write(new Object() < new Number(-10.1));
write(new Object() < new Number(Number.MAX_VALUE));
write(new Object() < new Number(Number.MIN_VALUE));
write(new Object() < new Number(Number.NaN));
write(new Object() < new Number(Number.POSITIVE_INFINITY));
write(new Object() < new Number(Number.NEGATIVE_INFINITY));
write(new Object() < '');
write(new Object() < 0xa);
write(new Object() < 04);
write(new Object() < 'hello');
write(new Object() < 'hel' + 'lo');
write(new Object() < String(''));
write(new Object() < String('hello'));
write(new Object() < String('h' + 'ello'));
write(new Object() < new String(''));
write(new Object() < new String('hello'));
write(new Object() < new String('he' + 'llo'));
write(new Object() < new Object());
write(new Object() < new Object());
write(new Object() < [1, 2, 3]);
write(new Object() < [1 ,2 , 3]);
write(new Object() < new Array(3));
write(new Object() < Array(3));
write(new Object() < new Array(1 ,2 ,3));
write(new Object() < Array(1));
write(new Object() < foo);
write([1, 2, 3] < undefined);
write([1, 2, 3] < null);
write([1, 2, 3] < true);
write([1, 2, 3] < false);
write([1, 2, 3] < Boolean(true));
write([1, 2, 3] < Boolean(false));
write([1, 2, 3] < new Boolean(true));
write([1, 2, 3] < new Boolean(false));
write([1, 2, 3] < NaN);
write([1, 2, 3] < +0);
write([1, 2, 3] < -0);
write([1, 2, 3] < 0);
write([1, 2, 3] < 0.0);
write([1, 2, 3] < -0.0);
write([1, 2, 3] < +0.0);
write([1, 2, 3] < 1);
write([1, 2, 3] < 10);
write([1, 2, 3] < 10.0);
write([1, 2, 3] < 10.1);
write([1, 2, 3] < -1);
write([1, 2, 3] < -10);
write([1, 2, 3] < -10.0);
write([1, 2, 3] < -10.1);
write([1, 2, 3] < Number.MAX_VALUE);
write([1, 2, 3] < Number.MIN_VALUE);
write([1, 2, 3] < Number.NaN);
write([1, 2, 3] < Number.POSITIVE_INFINITY);
write([1, 2, 3] < Number.NEGATIVE_INFINITY);
write([1, 2, 3] < new Number(NaN));
write([1, 2, 3] < new Number(+0));
write([1, 2, 3] < new Number(-0));
write([1, 2, 3] < new Number(0));
write([1, 2, 3] < new Number(0.0));
write([1, 2, 3] < new Number(-0.0));
write([1, 2, 3] < new Number(+0.0));
write([1, 2, 3] < new Number(1));
write([1, 2, 3] < new Number(10));
write([1, 2, 3] < new Number(10.0));
write([1, 2, 3] < new Number(10.1));
write([1, 2, 3] < new Number(-1));
write([1, 2, 3] < new Number(-10));
write([1, 2, 3] < new Number(-10.0));
write([1, 2, 3] < new Number(-10.1));
write([1, 2, 3] < new Number(Number.MAX_VALUE));
write([1, 2, 3] < new Number(Number.MIN_VALUE));
write([1, 2, 3] < new Number(Number.NaN));
write([1, 2, 3] < new Number(Number.POSITIVE_INFINITY));
write([1, 2, 3] < new Number(Number.NEGATIVE_INFINITY));
write([1, 2, 3] < '');
write([1, 2, 3] < 0xa);
write([1, 2, 3] < 04);
write([1, 2, 3] < 'hello');
write([1, 2, 3] < 'hel' + 'lo');
write([1, 2, 3] < String(''));
write([1, 2, 3] < String('hello'));
write([1, 2, 3] < String('h' + 'ello'));
write([1, 2, 3] < new String(''));
write([1, 2, 3] < new String('hello'));
write([1, 2, 3] < new String('he' + 'llo'));
write([1, 2, 3] < new Object());
write([1, 2, 3] < new Object());
write([1, 2, 3] < [1, 2, 3]);
write([1, 2, 3] < [1 ,2 , 3]);
write([1, 2, 3] < new Array(3));
write([1, 2, 3] < Array(3));
write([1, 2, 3] < new Array(1 ,2 ,3));
write([1, 2, 3] < Array(1));
write([1, 2, 3] < foo);
write([1 ,2 , 3] < undefined);
write([1 ,2 , 3] < null);
write([1 ,2 , 3] < true);
write([1 ,2 , 3] < false);
write([1 ,2 , 3] < Boolean(true));
write([1 ,2 , 3] < Boolean(false));
write([1 ,2 , 3] < new Boolean(true));
write([1 ,2 , 3] < new Boolean(false));
write([1 ,2 , 3] < NaN);
write([1 ,2 , 3] < +0);
write([1 ,2 , 3] < -0);
write([1 ,2 , 3] < 0);
write([1 ,2 , 3] < 0.0);
write([1 ,2 , 3] < -0.0);
write([1 ,2 , 3] < +0.0);
write([1 ,2 , 3] < 1);
write([1 ,2 , 3] < 10);
write([1 ,2 , 3] < 10.0);
write([1 ,2 , 3] < 10.1);
write([1 ,2 , 3] < -1);
write([1 ,2 , 3] < -10);
write([1 ,2 , 3] < -10.0);
write([1 ,2 , 3] < -10.1);
write([1 ,2 , 3] < Number.MAX_VALUE);
write([1 ,2 , 3] < Number.MIN_VALUE);
write([1 ,2 , 3] < Number.NaN);
write([1 ,2 , 3] < Number.POSITIVE_INFINITY);
write([1 ,2 , 3] < Number.NEGATIVE_INFINITY);
write([1 ,2 , 3] < new Number(NaN));
write([1 ,2 , 3] < new Number(+0));
write([1 ,2 , 3] < new Number(-0));
write([1 ,2 , 3] < new Number(0));
write([1 ,2 , 3] < new Number(0.0));
write([1 ,2 , 3] < new Number(-0.0));
write([1 ,2 , 3] < new Number(+0.0));
write([1 ,2 , 3] < new Number(1));
write([1 ,2 , 3] < new Number(10));
write([1 ,2 , 3] < new Number(10.0));
write([1 ,2 , 3] < new Number(10.1));
write([1 ,2 , 3] < new Number(-1));
write([1 ,2 , 3] < new Number(-10));
write([1 ,2 , 3] < new Number(-10.0));
write([1 ,2 , 3] < new Number(-10.1));
write([1 ,2 , 3] < new Number(Number.MAX_VALUE));
write([1 ,2 , 3] < new Number(Number.MIN_VALUE));
write([1 ,2 , 3] < new Number(Number.NaN));
write([1 ,2 , 3] < new Number(Number.POSITIVE_INFINITY));
write([1 ,2 , 3] < new Number(Number.NEGATIVE_INFINITY));
write([1 ,2 , 3] < '');
write([1 ,2 , 3] < 0xa);
write([1 ,2 , 3] < 04);
write([1 ,2 , 3] < 'hello');
write([1 ,2 , 3] < 'hel' + 'lo');
write([1 ,2 , 3] < String(''));
write([1 ,2 , 3] < String('hello'));
write([1 ,2 , 3] < String('h' + 'ello'));
write([1 ,2 , 3] < new String(''));
write([1 ,2 , 3] < new String('hello'));
write([1 ,2 , 3] < new String('he' + 'llo'));
write([1 ,2 , 3] < new Object());
write([1 ,2 , 3] < new Object());
write([1 ,2 , 3] < [1, 2, 3]);
write([1 ,2 , 3] < [1 ,2 , 3]);
write([1 ,2 , 3] < new Array(3));
write([1 ,2 , 3] < Array(3));
write([1 ,2 , 3] < new Array(1 ,2 ,3));
write([1 ,2 , 3] < Array(1));
write([1 ,2 , 3] < foo);
write(new Array(3) < undefined);
write(new Array(3) < null);
write(new Array(3) < true);
write(new Array(3) < false);
write(new Array(3) < Boolean(true));
write(new Array(3) < Boolean(false));
write(new Array(3) < new Boolean(true));
write(new Array(3) < new Boolean(false));
write(new Array(3) < NaN);
write(new Array(3) < +0);
write(new Array(3) < -0);
write(new Array(3) < 0);
write(new Array(3) < 0.0);
write(new Array(3) < -0.0);
write(new Array(3) < +0.0);
write(new Array(3) < 1);
write(new Array(3) < 10);
write(new Array(3) < 10.0);
write(new Array(3) < 10.1);
write(new Array(3) < -1);
write(new Array(3) < -10);
write(new Array(3) < -10.0);
write(new Array(3) < -10.1);
write(new Array(3) < Number.MAX_VALUE);
write(new Array(3) < Number.MIN_VALUE);
write(new Array(3) < Number.NaN);
write(new Array(3) < Number.POSITIVE_INFINITY);
write(new Array(3) < Number.NEGATIVE_INFINITY);
write(new Array(3) < new Number(NaN));
write(new Array(3) < new Number(+0));
write(new Array(3) < new Number(-0));
write(new Array(3) < new Number(0));
write(new Array(3) < new Number(0.0));
write(new Array(3) < new Number(-0.0));
write(new Array(3) < new Number(+0.0));
write(new Array(3) < new Number(1));
write(new Array(3) < new Number(10));
write(new Array(3) < new Number(10.0));
write(new Array(3) < new Number(10.1));
write(new Array(3) < new Number(-1));
write(new Array(3) < new Number(-10));
write(new Array(3) < new Number(-10.0));
write(new Array(3) < new Number(-10.1));
write(new Array(3) < new Number(Number.MAX_VALUE));
write(new Array(3) < new Number(Number.MIN_VALUE));
write(new Array(3) < new Number(Number.NaN));
write(new Array(3) < new Number(Number.POSITIVE_INFINITY));
write(new Array(3) < new Number(Number.NEGATIVE_INFINITY));
write(new Array(3) < '');
write(new Array(3) < 0xa);
write(new Array(3) < 04);
write(new Array(3) < 'hello');
write(new Array(3) < 'hel' + 'lo');
write(new Array(3) < String(''));
write(new Array(3) < String('hello'));
write(new Array(3) < String('h' + 'ello'));
write(new Array(3) < new String(''));
write(new Array(3) < new String('hello'));
write(new Array(3) < new String('he' + 'llo'));
write(new Array(3) < new Object());
write(new Array(3) < new Object());
write(new Array(3) < [1, 2, 3]);
write(new Array(3) < [1 ,2 , 3]);
write(new Array(3) < new Array(3));
write(new Array(3) < Array(3));
write(new Array(3) < new Array(1 ,2 ,3));
write(new Array(3) < Array(1));
write(new Array(3) < foo);
write(Array(3) < undefined);
write(Array(3) < null);
write(Array(3) < true);
write(Array(3) < false);
write(Array(3) < Boolean(true));
write(Array(3) < Boolean(false));
write(Array(3) < new Boolean(true));
write(Array(3) < new Boolean(false));
write(Array(3) < NaN);
write(Array(3) < +0);
write(Array(3) < -0);
write(Array(3) < 0);
write(Array(3) < 0.0);
write(Array(3) < -0.0);
write(Array(3) < +0.0);
write(Array(3) < 1);
write(Array(3) < 10);
write(Array(3) < 10.0);
write(Array(3) < 10.1);
write(Array(3) < -1);
write(Array(3) < -10);
write(Array(3) < -10.0);
write(Array(3) < -10.1);
write(Array(3) < Number.MAX_VALUE);
write(Array(3) < Number.MIN_VALUE);
write(Array(3) < Number.NaN);
write(Array(3) < Number.POSITIVE_INFINITY);
write(Array(3) < Number.NEGATIVE_INFINITY);
write(Array(3) < new Number(NaN));
write(Array(3) < new Number(+0));
write(Array(3) < new Number(-0));
write(Array(3) < new Number(0));
write(Array(3) < new Number(0.0));
write(Array(3) < new Number(-0.0));
write(Array(3) < new Number(+0.0));
write(Array(3) < new Number(1));
write(Array(3) < new Number(10));
write(Array(3) < new Number(10.0));
write(Array(3) < new Number(10.1));
write(Array(3) < new Number(-1));
write(Array(3) < new Number(-10));
write(Array(3) < new Number(-10.0));
write(Array(3) < new Number(-10.1));
write(Array(3) < new Number(Number.MAX_VALUE));
write(Array(3) < new Number(Number.MIN_VALUE));
write(Array(3) < new Number(Number.NaN));
write(Array(3) < new Number(Number.POSITIVE_INFINITY));
write(Array(3) < new Number(Number.NEGATIVE_INFINITY));
write(Array(3) < '');
write(Array(3) < 0xa);
write(Array(3) < 04);
write(Array(3) < 'hello');
write(Array(3) < 'hel' + 'lo');
write(Array(3) < String(''));
write(Array(3) < String('hello'));
write(Array(3) < String('h' + 'ello'));
write(Array(3) < new String(''));
write(Array(3) < new String('hello'));
write(Array(3) < new String('he' + 'llo'));
write(Array(3) < new Object());
write(Array(3) < new Object());
write(Array(3) < [1, 2, 3]);
write(Array(3) < [1 ,2 , 3]);
write(Array(3) < new Array(3));
write(Array(3) < Array(3));
write(Array(3) < new Array(1 ,2 ,3));
write(Array(3) < Array(1));
write(Array(3) < foo);
write(new Array(1 ,2 ,3) < undefined);
write(new Array(1 ,2 ,3) < null);
write(new Array(1 ,2 ,3) < true);
write(new Array(1 ,2 ,3) < false);
write(new Array(1 ,2 ,3) < Boolean(true));
write(new Array(1 ,2 ,3) < Boolean(false));
write(new Array(1 ,2 ,3) < new Boolean(true));
write(new Array(1 ,2 ,3) < new Boolean(false));
write(new Array(1 ,2 ,3) < NaN);
write(new Array(1 ,2 ,3) < +0);
write(new Array(1 ,2 ,3) < -0);
write(new Array(1 ,2 ,3) < 0);
write(new Array(1 ,2 ,3) < 0.0);
write(new Array(1 ,2 ,3) < -0.0);
write(new Array(1 ,2 ,3) < +0.0);
write(new Array(1 ,2 ,3) < 1);
write(new Array(1 ,2 ,3) < 10);
write(new Array(1 ,2 ,3) < 10.0);
write(new Array(1 ,2 ,3) < 10.1);
write(new Array(1 ,2 ,3) < -1);
write(new Array(1 ,2 ,3) < -10);
write(new Array(1 ,2 ,3) < -10.0);
write(new Array(1 ,2 ,3) < -10.1);
write(new Array(1 ,2 ,3) < Number.MAX_VALUE);
write(new Array(1 ,2 ,3) < Number.MIN_VALUE);
write(new Array(1 ,2 ,3) < Number.NaN);
write(new Array(1 ,2 ,3) < Number.POSITIVE_INFINITY);
write(new Array(1 ,2 ,3) < Number.NEGATIVE_INFINITY);
write(new Array(1 ,2 ,3) < new Number(NaN));
write(new Array(1 ,2 ,3) < new Number(+0));
write(new Array(1 ,2 ,3) < new Number(-0));
write(new Array(1 ,2 ,3) < new Number(0));
write(new Array(1 ,2 ,3) < new Number(0.0));
write(new Array(1 ,2 ,3) < new Number(-0.0));
write(new Array(1 ,2 ,3) < new Number(+0.0));
write(new Array(1 ,2 ,3) < new Number(1));
write(new Array(1 ,2 ,3) < new Number(10));
write(new Array(1 ,2 ,3) < new Number(10.0));
write(new Array(1 ,2 ,3) < new Number(10.1));
write(new Array(1 ,2 ,3) < new Number(-1));
write(new Array(1 ,2 ,3) < new Number(-10));
write(new Array(1 ,2 ,3) < new Number(-10.0));
write(new Array(1 ,2 ,3) < new Number(-10.1));
write(new Array(1 ,2 ,3) < new Number(Number.MAX_VALUE));
write(new Array(1 ,2 ,3) < new Number(Number.MIN_VALUE));
write(new Array(1 ,2 ,3) < new Number(Number.NaN));
write(new Array(1 ,2 ,3) < new Number(Number.POSITIVE_INFINITY));
write(new Array(1 ,2 ,3) < new Number(Number.NEGATIVE_INFINITY));
write(new Array(1 ,2 ,3) < '');
write(new Array(1 ,2 ,3) < 0xa);
write(new Array(1 ,2 ,3) < 04);
write(new Array(1 ,2 ,3) < 'hello');
write(new Array(1 ,2 ,3) < 'hel' + 'lo');
write(new Array(1 ,2 ,3) < String(''));
write(new Array(1 ,2 ,3) < String('hello'));
write(new Array(1 ,2 ,3) < String('h' + 'ello'));
write(new Array(1 ,2 ,3) < new String(''));
write(new Array(1 ,2 ,3) < new String('hello'));
write(new Array(1 ,2 ,3) < new String('he' + 'llo'));
write(new Array(1 ,2 ,3) < new Object());
write(new Array(1 ,2 ,3) < new Object());
write(new Array(1 ,2 ,3) < [1, 2, 3]);
write(new Array(1 ,2 ,3) < [1 ,2 , 3]);
write(new Array(1 ,2 ,3) < new Array(3));
write(new Array(1 ,2 ,3) < Array(3));
write(new Array(1 ,2 ,3) < new Array(1 ,2 ,3));
write(new Array(1 ,2 ,3) < Array(1));
write(new Array(1 ,2 ,3) < foo);
write(Array(1) < undefined);
write(Array(1) < null);
write(Array(1) < true);
write(Array(1) < false);
write(Array(1) < Boolean(true));
write(Array(1) < Boolean(false));
write(Array(1) < new Boolean(true));
write(Array(1) < new Boolean(false));
write(Array(1) < NaN);
write(Array(1) < +0);
write(Array(1) < -0);
write(Array(1) < 0);
write(Array(1) < 0.0);
write(Array(1) < -0.0);
write(Array(1) < +0.0);
write(Array(1) < 1);
write(Array(1) < 10);
write(Array(1) < 10.0);
write(Array(1) < 10.1);
write(Array(1) < -1);
write(Array(1) < -10);
write(Array(1) < -10.0);
write(Array(1) < -10.1);
write(Array(1) < Number.MAX_VALUE);
write(Array(1) < Number.MIN_VALUE);
write(Array(1) < Number.NaN);
write(Array(1) < Number.POSITIVE_INFINITY);
write(Array(1) < Number.NEGATIVE_INFINITY);
write(Array(1) < new Number(NaN));
write(Array(1) < new Number(+0));
write(Array(1) < new Number(-0));
write(Array(1) < new Number(0));
write(Array(1) < new Number(0.0));
write(Array(1) < new Number(-0.0));
write(Array(1) < new Number(+0.0));
write(Array(1) < new Number(1));
write(Array(1) < new Number(10));
write(Array(1) < new Number(10.0));
write(Array(1) < new Number(10.1));
write(Array(1) < new Number(-1));
write(Array(1) < new Number(-10));
write(Array(1) < new Number(-10.0));
write(Array(1) < new Number(-10.1));
write(Array(1) < new Number(Number.MAX_VALUE));
write(Array(1) < new Number(Number.MIN_VALUE));
write(Array(1) < new Number(Number.NaN));
write(Array(1) < new Number(Number.POSITIVE_INFINITY));
write(Array(1) < new Number(Number.NEGATIVE_INFINITY));
write(Array(1) < '');
write(Array(1) < 0xa);
write(Array(1) < 04);
write(Array(1) < 'hello');
write(Array(1) < 'hel' + 'lo');
write(Array(1) < String(''));
write(Array(1) < String('hello'));
write(Array(1) < String('h' + 'ello'));
write(Array(1) < new String(''));
write(Array(1) < new String('hello'));
write(Array(1) < new String('he' + 'llo'));
write(Array(1) < new Object());
write(Array(1) < new Object());
write(Array(1) < [1, 2, 3]);
write(Array(1) < [1 ,2 , 3]);
write(Array(1) < new Array(3));
write(Array(1) < Array(3));
write(Array(1) < new Array(1 ,2 ,3));
write(Array(1) < Array(1));
write(Array(1) < foo);
write(foo < undefined);
write(foo < null);
write(foo < true);
write(foo < false);
write(foo < Boolean(true));
write(foo < Boolean(false));
write(foo < new Boolean(true));
write(foo < new Boolean(false));
write(foo < NaN);
write(foo < +0);
write(foo < -0);
write(foo < 0);
write(foo < 0.0);
write(foo < -0.0);
write(foo < +0.0);
write(foo < 1);
write(foo < 10);
write(foo < 10.0);
write(foo < 10.1);
write(foo < -1);
write(foo < -10);
write(foo < -10.0);
write(foo < -10.1);
write(foo < Number.MAX_VALUE);
write(foo < Number.MIN_VALUE);
write(foo < Number.NaN);
write(foo < Number.POSITIVE_INFINITY);
write(foo < Number.NEGATIVE_INFINITY);
write(foo < new Number(NaN));
write(foo < new Number(+0));
write(foo < new Number(-0));
write(foo < new Number(0));
write(foo < new Number(0.0));
write(foo < new Number(-0.0));
write(foo < new Number(+0.0));
write(foo < new Number(1));
write(foo < new Number(10));
write(foo < new Number(10.0));
write(foo < new Number(10.1));
write(foo < new Number(-1));
write(foo < new Number(-10));
write(foo < new Number(-10.0));
write(foo < new Number(-10.1));
write(foo < new Number(Number.MAX_VALUE));
write(foo < new Number(Number.MIN_VALUE));
write(foo < new Number(Number.NaN));
write(foo < new Number(Number.POSITIVE_INFINITY));
write(foo < new Number(Number.NEGATIVE_INFINITY));
write(foo < '');
write(foo < 0xa);
write(foo < 04);
write(foo < 'hello');
write(foo < 'hel' + 'lo');
write(foo < String(''));
write(foo < String('hello'));
write(foo < String('h' + 'ello'));
write(foo < new String(''));
write(foo < new String('hello'));
write(foo < new String('he' + 'llo'));
write(foo < new Object());
write(foo < new Object());
write(foo < [1, 2, 3]);
write(foo < [1 ,2 , 3]);
write(foo < new Array(3));
write(foo < Array(3));
write(foo < new Array(1 ,2 ,3));
write(foo < Array(1));
write(foo < foo);
